<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.3ds.com/xsd/osm.xsd" xmlns:osm="http://www.3ds.com/xsd/osm.xsd" targetNamespace="http://www.3ds.com/xsd/osm.xsd">
	<xsd:element name="Osm">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Feature" minOccurs="0" maxOccurs="unbounded" />
			</xsd:sequence>
			<xsd:attribute name="version" type="xsd:int" use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Feature">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Attr" minOccurs="0" maxOccurs="unbounded" />
				<xsd:element ref="Plugin" minOccurs="0" maxOccurs="unbounded" />
			</xsd:sequence>
			<xsd:attribute name="StartUp" use="required" />
			<xsd:attribute name="Id" type="TagType" use="required" />
			<xsd:attribute name="Alias" use="required" />
			<xsd:attribute name="Aggregating" type="TagType" use="optional" />
			<xsd:attribute name="Uuid" type="UuidType" use="optional" />
			<xsd:attribute name="CollabUuid" type="UuidType" use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Attr" type="AttrType" />
	<xsd:element name="Plugin">
		<xsd:complexType mixed="true">
			<xsd:sequence>
				<xsd:any processContents="lax" namespace="##any" minOccurs="0" maxOccurs="unbounded" />
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="AttrType">
		<xsd:attribute name="Name" type="xsd:string" use="required" />
		<xsd:attribute name="Type" type="AttrKind" use="required" />
		<xsd:attribute name="Value" use="required" />
	</xsd:complexType>
	<xsd:simpleType name="UuidType">
		<xsd:restriction base="xsd:string"><xsd:pattern value="[-0-9a-fA-F]+"/></xsd:restriction>
  </xsd:simpleType>
	<xsd:simpleType name="TagType">
		<xsd:restriction base="xsd:positiveInteger"></xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="AttrKind">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="external" />
			<xsd:enumeration value="specobject" />
			<xsd:enumeration value="component" />
			<xsd:enumeration value="string" />
			<xsd:enumeration value="int" />
			<xsd:enumeration value="double" />
			<xsd:enumeration value="octet" />
			<xsd:enumeration value="boolean" />
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
